import Vue from 'vue'
import Vuex from 'vuex'
import { getTokenobj, setTokenobj } from '../utils/storage.js'
Vue.use(Vuex)
// 如果getTokenobj的返回值是null, 则initTokenobj是一个空对象
const initTokenobj = getTokenobj() || {}
export default new Vuex.Store({
  // 保存公共数据
  state: {
    tokeninof: {
      token: initTokenobj.token || '',
      refsh_token: initTokenobj.refsh_token || ''
    }
  },
  // state中的数据要通过mutations才能修改
  mutations: {
  // mutations就是一个一个的函数,第一个参数就是当前的state,第二个参数是载荷:要传入的数据
    setuserToken (state, newtoken) {
      state.tokeninof = newtoken
      // 保存到本地localstorage
      setTokenobj(newtoken)
    }
  },
  actions: {
  },
  modules: {
    usersInfo: {
    // 命名空间
      namespaced: true,
      // 用户个人信息
      state: {
        birthday: '',
        gender: 1,
        id: '',
        mobile: '',
        name: '',
        photo: ''
      },
      mutations: {
        mSetuserInfo (state, newuserInfo) {
          state.birthday = newuserInfo.birthday
          state.gender = newuserInfo.gender
          state.id = newuserInfo.id
          state.mobile = newuserInfo.mobile
          state.name = newuserInfo.name
          state.photo = newuserInfo.photo
        }
      }
    }
  }
})
